import type { ResumeAddOrUpdateRequest, ResumeDetailResponse, ResumeListQuery, ResumeListResponse, ResumeSimple } from "./type"
import { request } from "@/http/axios"

/**
 * 获取用户的所有简历
 * @param userId 用户ID
 * @returns 用户简历列表
 */
export function getUserResumesApi(params: ResumeListQuery) {
  return request<ResumeListResponse>({
    url: "/sys/resume/page",
    method: "post",
    data: params
  })
}

/**
 * 获取简历详情
 * @param resumeId 简历ID
 * @returns 简历详情数据
 */
export function getResumeDetailApi(resumeId: number) {
  return request<ResumeDetailResponse>({
    url: `/sys/resume/${resumeId}`,
    method: "get"
  })
}

/**
 * 添加简历
 * @param data 简历数据
 * @returns 操作结果
 */
export function addResumeApi(data: ResumeAddOrUpdateRequest) {
  return request<boolean>({
    url: "/sys/resume",
    method: "post",
    data
  })
}

/**
 * 更新简历
 * @param resumeId 简历ID
 * @param data 简历数据
 * @returns 操作结果
 */
export function updateResumeApi(resumeId: number, data: ResumeAddOrUpdateRequest) {
  return request<boolean>({
    url: `/sys/resume/${resumeId}`,
    method: "put",
    data
  })
}

/**
 * 删除简历
 * @param resumeId 简历ID
 * @returns 操作结果
 */
export function deleteResumeApi(resumeId: number) {
  return request<boolean>({
    url: `/sys/resume/${resumeId}`,
    method: "delete"
  })
}

/**
 * 生成简历PDF
 * @param data 简历PDF生成请求参数
 * @returns PDF URL字符串
 */
export function generateResumePdfApi(data: ResumeAddOrUpdateRequest) {
  return request<ApiResponseData<string>>({
    url: "/sys/resume/pdf",
    method: "post",
    data
  })
}

/**
 * 获取用户的所有简历（简化版）
 * @param userId 用户ID
 * @returns 用户简历列表（简化版）
 */
export function getUserResumesSamlApi(userId: number) {
  return request<ApiResponseData<ResumeSimple[]>>({
    url: `/sys/resume/user/${userId}`,
    method: "get"
  })
}
